import request from "@/utils/request";

const PRODUCTSALES_BASE_URL = "/api/v1/product-sales";

const ProductSalesAPI = {
  /** 获取商品销售数据分页数据 */
  getPage(queryParams?: ProductSalesPageQuery) {
    return request<any, PageResult<ProductSalesPageVO[]>>({
      url: `${PRODUCTSALES_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取商品销售数据表单数据
   *
   * @param id 商品销售数据ID
   * @returns 商品销售数据表单数据
   */
  getFormData(id: number) {
    return request<any, ProductSalesForm>({
      url: `${PRODUCTSALES_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   *  添加商品销售数据
   *
   *  @param data 商品销售数据表单数据
   */
  add(data: ProductSalesForm) {
    return request({
      url: `${PRODUCTSALES_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新商品销售数据
   *
   * @param id 商品销售数据ID
   * @param data 商品销售数据表单数据
   */
  update(id: number, data: ProductSalesForm) {
    return request({
      url: `${PRODUCTSALES_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量删除商品销售数据，多个以英文逗号(,)分割
   *
   * @param ids 商品销售数据ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${PRODUCTSALES_BASE_URL}/${ids}`,
      method: "delete",
    });
  }
}

export default ProductSalesAPI;

/** 商品销售数据分页查询参数 */
export interface ProductSalesPageQuery extends PageQuery {
}

/** 商品销售数据表单对象 */
export interface ProductSalesForm {
  /** 主键 */
  id?:  number;
  /** 时间周期 */
  timePeriod?:  string;
  /** 商品名称 */
  productName?:  string;
  /** SKU */
  sku?:  string;
  /** 品牌 */
  brand?:  string;
  /** 一级类别 */
  firstCategory?:  string;
  /** 二级类别 */
  secondCategory?:  string;
  /** 三级类别 */
  thirdCategory?:  string;
  /** 店铺简称 */
  shopShortName?:  string;
  /** 经营模式 */
  operationMode?:  string;
  /** 浏览量 */
  pageViews?:  number;
  /** 访客数 */
  visitorCount?:  number;
  /** 人均浏览量 */
  avgPageViewsPerVisitor?:  number;
  /** 平均停留时长 */
  avgStayTime?:  number;
  /** 成交人数 */
  transactionUserCount?:  number;
  /** 成交转化率 */
  conversionRate?:  number;
  /** 成交单量 */
  transactionOrderCount?:  number;
  /** 成交商品件数 */
  transactionItemCount?:  number;
  /** 成交金额 */
  transactionAmount?:  number;
  /** 成交客单价 */
  averageTransactionValue?:  number;
  /** 创建时间 */
  createTime?:  Date;
  /** 更新时间 */
  updateTime?:  Date;
  /** 删除标记(0:正常 1:删除) */
  isDeleted?:  number;
}

/** 商品销售数据分页对象 */
export interface ProductSalesPageVO {
  /** 主键 */
  id?: number;
  /** 时间周期 */
  timePeriod?: string;
  /** 商品名称 */
  productName?: string;
  /** SKU */
  sku?: string;
  /** 品牌 */
  brand?: string;
  /** 一级类别 */
  firstCategory?: string;
  /** 二级类别 */
  secondCategory?: string;
  /** 三级类别 */
  thirdCategory?: string;
  /** 店铺简称 */
  shopShortName?: string;
  /** 经营模式 */
  operationMode?: string;
  /** 浏览量 */
  pageViews?: number;
  /** 访客数 */
  visitorCount?: number;
  /** 人均浏览量 */
  avgPageViewsPerVisitor?: number;
  /** 平均停留时长 */
  avgStayTime?: number;
  /** 成交人数 */
  transactionUserCount?: number;
  /** 成交转化率 */
  conversionRate?: number;
  /** 成交单量 */
  transactionOrderCount?: number;
  /** 成交商品件数 */
  transactionItemCount?: number;
  /** 成交金额 */
  transactionAmount?: number;
  /** 成交客单价 */
  averageTransactionValue?: number;
  /** 创建时间 */
  createTime?: Date;
  /** 更新时间 */
  updateTime?: Date;
  /** 删除标记(0:正常 1:删除) */
  isDeleted?: number;
}
